$.fn.required=function(errorMsg,errorLoc){
	var val = this.val();
	if(val!=null && val.length>0){
		errorLoc.text("");
		return true;
	}else{
		errorLoc.text(errorMsg);
		return false;
	}
}
$.fn.remote=function(url,errorMsg,errorLoc){
	var val = this.val();
	var name = this.attr("name");
	var obj ={};
	obj[name]=val;
	//alert($.param(obj)+","+$(this).serialize());
	var b = false;
	$.ajax({
    'url':url,
    'dataType':'json',
    'type':'post',
    'data':$(this).serialize(),
    'async':false,
    'success':function(data){
        	if(data){
        			b = true;
        			errorLoc.removeClass("error_msg");
        			errorLoc.text("");
        		}else{
        			errorLoc.addClass("error_msg");
        			errorLoc.text(errorMsg);
        					}
        	}
	});
	return b;
}
$.fn.submitForm=function(url,errorMsg,sucMsg,errorLoc){
	var b = false;
	$.ajax({
    'url':url,
    'dataType':'json',
    'type':'post',
    'data':this.serialize(),
    'async':false,
    'success':function(data){
        	if(data){
        			b = true;
        			errorLoc.text(sucMsg);
        		}else{
        			errorLoc.text(errorMsg);
        					}
        	}
	});
	return b;
}
$.fn.range=function(min,max,errorMsg,errorLoc){
	var val = this.val();
	if(val!=null&&val.length>=min&&val.length<=max){
		errorLoc.text("");
		return true;
	}else{
		errorLoc.text(errorMsg);
		return false;
	}
}
$.fn.intRange=function(min,max,errorMsg,errorLoc){
	var val = this.val();
	var reg = /^\d*$/;
	if(reg.test(val)){
		var n = parseInt(val);
		if(n>=min&&n<=max){
			errorLoc.text("");
			return true;
		}
	}
	errorLoc.text(errorMsg);
	return false;
	
}